package cn.qrx.gateway.session;

import io.netty.channel.Channel;
import java.util.concurrent.Future;

import java.util.concurrent.ExecutionException;

/**
 * @author 屈燃希
 * @date 2025/10/2 10:47
 * @content
 */
public class GenericReferenceSessionFactoryBulider { // 工厂构建器类，用于构建GenericReferenceSessionFactory




    /**
     * 构建方法，创建GenericReferenceSessionFactory实例并打开会话
     * @param configuration 配置对象，包含所需的配置信息
     * @return 返回一个Future<Channel>对象，表示异步获取的通道
     */
    public Future<Channel> build(Configuration configuration){ // 构建方法，接受配置参数并返回通道的Future对象

        try { // 尝试执行以下操作
            GenericReferenceSessionFactory genericReferenceSessionFactory = new GenericReferenceSessionFactory(configuration); // 创建工厂实例
            return genericReferenceSessionFactory.openSession(); // 打开会话并返回
        }  catch (Exception e) { // 捕获可能发生的异常
            throw new RuntimeException(e); // 将异常转换为运行时异常抛出
        }
    }

}
